const go/types.exact
13 uses
go/types (current package)
infer.go#L305: if !check.hasAllMethods(tx, constraint, true, func(x, y Type) bool { return u.unify(x, y, exact) }, &cause) {
unify.go#L123: exact
unify.go#L132: case exact:
unify.go#L134: case assign | exact:
unify.go#L341: if ny := asNamed(y); mode&exact == 0 && ny != nil && isTypeLit(x) && !(u.enableInterfaceInference && IsInterface(x)) {
unify.go#L427: if mode&exact == 0 {
unify.go#L459: if u.enableInterfaceInference && mode&exact == 0 {
unify.go#L522: if ym := ymap[xm.Id()]; ym == nil || !u.nify(xm.typ, ym.typ, exact, p) {
unify.go#L543: if ym, _ := obj.(*Func); ym == nil || !u.nify(xm.typ, ym.typ, exact, p) {
unify.go#L573: emode |= exact
unify.go#L660: assert(!u.enableInterfaceInference || mode&exact != 0) // handled before this switch
unify.go#L713: if f.Id() != g.Id() || !u.nify(f.typ, g.typ, exact, q) {
unify.go#L732: return (mode&exact == 0 || x.dir == y.dir) && u.nify(x.elem, y.elem, emode, p)